package Iterador;

public class NodoIteradorSimple <T>{
	
private T elemento;
	
	private NodoIteradorSimple<T> siguiente;
	
	private NodoIteradorSimple<T> anterior;
	
	
	public NodoIteradorSimple (T nElemento){
		elemento = nElemento;
		siguiente = null;
		anterior = null;
	}
	
	public T darElemento() {
		return elemento;
	}

	
	public NodoIteradorSimple<T> darSiguiente() {
		return siguiente;
	}

	
	public NodoIteradorSimple<T> darAnterior() {
		return anterior;
	}
	
	
	public void cambiarAnterior(NodoIteradorSimple<T> nodo) {
		anterior =  nodo;		
	}


	public void cambiarSiguiente (NodoIteradorSimple<T> nodo){
		siguiente = nodo;
	}
	
	public void insertarAntes(NodoIteradorSimple<T> nodo) {
		nodo.cambiarSiguiente(this);
		nodo.cambiarAnterior(anterior);
		if (anterior!=null){
			anterior.cambiarSiguiente(nodo);
		}
		anterior = nodo;
	}

	
	public void insertarDespues(NodoIteradorSimple<T> nodo) {
		nodo.cambiarSiguiente(siguiente);
		nodo.cambiarAnterior(this);
		if (siguiente != null){
			siguiente.cambiarAnterior(nodo);
		}
		siguiente = nodo;
	}
	
	public String toString(){
		return elemento.toString();
	}

}
